#include<stdio.h>
#include<stdbool.h>
struct TreeNode {
	int val;
	struct TreeNode* left;
	struct TreeNode* right;
};
bool issametree(struct TreeNode* root1, struct TreeNode* root2) {
    if (root1 == NULL && root2 == NULL) {
        return true;
    }
    if (root1 == NULL || root2 == NULL) {
        return false;
    }
    if (root1->val != root2->val) {
        return false;
    }
    return issametree(root1->left, root2->left) && issametree(root1->right, root2->right);
}
bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot) {
    if (root == NULL && subRoot != NULL) {
        return false;
    }
    if (issametree(root, subRoot)) {
        return true;
    }
    return isSubtree(root->left, subRoot) || isSubtree(root->right, subRoot);
}
int main()
{
	return 0;
}